package com.app.utils.base.http;

import com.alibaba.fastjson.JSON;
import com.app.utils.base.j2se.StringHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * 方法描述:处理返回类型
 * 主要统一返回接口类型
 * @author 小刘
 * @version v1.0
 * @date 2015/10/30
 */
public class ResultUtil {

    /** 
     * 没有业务数据的成功结果
     * @return 响应结果
     */
    public static String success(){
        return result(0, "操作成功", null);
    }

    /**
     * 没有业务数据的成功结果
     * @return 响应结果
     */
    public static String success(int code,String msg){
        return result(0, msg, null);
    }
    
    /** 
     * 没有业务数据的成功结果
     * @return 响应结果
     */
    public static String success(Object object){
        return result(0, "操作成功", object);
    }
    
    /**
     * 错误情况的响应结果
     * @param code 错误码
     * @param msg 错误消息
     * @return 响应结果
     */
    public static String error(int code, String msg){
        return result(code, msg, null);
    }
    
    /**
     * 错误情况的响应结果
     * @param code 错误码
     * @param msg 错误消息
     * @return 响应结果
     */
    public static String error(String code, String msg){
        return error(StringHandler.getInt(code), msg);
    }
    
    /** 
     * 响应结果
     * @param code 响应码 不为0 代表错误
     * @param msg 错误信息 当出错的时候 有错误信息 前端提示
     * @param data 成功以后的业务数据
     * @return 响应结果
     */
    private static String result(int code, String msg, Object data){
        Map<String,Object> map = new HashMap<>();
        map.put("msg", msg);
        map.put("code", code);
        map.put("data", null==data?"":data);
        return JSON.toJSONString(map);
    }

    /**
     * 实例化接口数据
     * @return
     */
    public static Map<String,Object> result(){
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("code",0);
        map.put("data","");
        map.put("msg","数据返回成功");
        return map;
    }
}
